﻿using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Caviar.SharedKernel.Entities
{
    /// <summary>
    /// 按钮类型
    /// </summary>
    public enum MenuType
    {
        /// <summary>
        /// 目录
        /// </summary>
        Catalog,
        /// <summary>
        /// 菜单
        /// </summary>
        Menu,
        /// <summary>
        /// 按钮
        /// </summary>
        Button,
        /// <summary>
        /// 设置
        /// </summary>
        Settings,
        /// <summary>
        /// API
        /// </summary>
        API,
    }
    /// <summary>
    /// 打开类型
    /// </summary>
    public enum TargetType
    {
        /// <summary>
        /// 当前页面
        /// </summary>
        CurrentPage,
        /// <summary>
        /// 弹出窗口
        /// </summary>
        EjectPage,
        /// <summary>
        /// 新建页面
        /// </summary>
        NewLabel,
        /// <summary>
        /// 回调
        /// </summary>
        Callback,
    }

    /// <summary>
    /// 按钮位置
    /// </summary>
    public enum ButtonPosition
    {
        Default,
        Row,
    }

    /// <summary>
    /// 权限类型
    /// </summary>
    public enum PermissionType
    {
        /// <summary>
        /// 角色字段
        /// </summary>
        RoleFields,
        /// <summary>
        /// 角色菜单
        /// </summary>
        RoleMenus
    }
    /// <summary>
    /// 数据范围
    /// </summary>
    public enum DataRange
    {
        /// <summary>
        /// 本级别
        /// </summary>
        Level,
        /// <summary>
        /// 本级和下级
        /// </summary>
        Subordinate,
        /// <summary>
        /// 自定义
        /// </summary>
        Custom,
        /// <summary>
        /// 所有数据权限
        /// </summary>
        All,
        
    }
    public enum TimeSlot
    {
        /// <summary>
        /// 上午
        /// </summary>
        Morning,
        /// <summary>
        /// 中午
        /// </summary>
        Noon,
        /// <summary>
        /// 下午
        /// </summary>
        Afternoon,
        /// <summary>
        /// 晚上
        /// </summary>
        Night,
        /// <summary>
        /// 午夜
        /// </summary>
        Midnight,
    }

    /// <summary>
    /// 主题类型
    /// </summary>
    public enum TopicType 
    {
        /// <summary>
        /// 系统所有消息通知
        /// </summary>
        SystemAllNotify,

        /// <summary>
        /// 好友添加通知
        /// </summary>
        FriendAddNotify,

        ///// <summary>
        ///// 好友验证通知
        ///// </summary>
        //FriendVerifyNotify,

        /// <summary>
        /// 聊天消息通知
        /// </summary>
        ChatMessageNotify,

        /// <summary>
        /// 群验证通知
        /// </summary>
        GroupVerifyNotify,

        /// <summary>
        /// 移除群聊通知
        /// </summary>
        RemoveGroupNotify,

        /// <summary>
        /// 好友上线通知
        /// </summary>
        FriendOnlineNotify,

        /// <summary>
        /// 好友下线通知
        /// </summary>
        FriendOfflineNotify,

        /// <summary>
        /// 群友上线通知
        /// </summary>
        GroupFriendOnlineNotify,

        /// <summary>
        /// 群下线通知
        /// </summary>
        GroupFriendOfflineNotify,

        /// <summary>
        /// 好友同意通知
        /// </summary>
        FriendAgreeNotify,

        /// <summary>
        /// 好友不同意通知
        /// </summary>
        FriendDisagreeNotify,
    }

    public enum FriendStatusType
    {
        /// <summary>
        /// 发起好友请求
        /// </summary>
        InitiateFriendRequest,

        /// <summary>
        /// 收到好友请求
        /// </summary>
        ReceiveFriendRequest,

        ///// <summary>
        ///// 等待同意
        ///// </summary>
        WaitingForAgree,

        /// <summary>
        /// 同意
        /// </summary>
        Agree,

        /// <summary>
        /// 被同意
        /// </summary>
        Agreed,

        /// <summary>
        /// 拒绝
        /// </summary>
        Reject,

        /// <summary>
        /// 被拒绝
        /// </summary>
        Rejected,

        /// <summary>
        /// 撤销好友申请
        /// </summary>
        Cancell,

        /// <summary>
        /// 被撤销好友申请
        /// </summary>
        Cancelled,

        /// <summary>
        /// 忽略
        /// </summary>
        Ignore,

        /// <summary>
        /// 被忽略
        /// </summary>
        Ignored,

        /// <summary>
        /// 屏蔽
        /// </summary>
        Shield,

        /// <summary>
        /// 被屏蔽
        /// </summary>
        Shielded,

        /// <summary>
        /// 拉入黑名单
        /// </summary>
        InBlacklist,

        /// <summary>
        /// 被拉入黑名单
        /// </summary>
        InBlacklisted
    }

    public enum MessageType 
    {
        Text,
        Image,
        File
    }

    /// <summary>
    /// 回收状态
    /// </summary>
    public enum RecycledType 
    {
        /// <summary>
        /// 无
        /// </summary>
        None,

        /// <summary>
        /// 删除
        /// </summary>
        Delete,

        /// <summary>
        /// 撤回
        /// </summary>
        Withdraw
    }
}
